﻿using System.Collections.Generic;
using static ConsoleApp1.StaticClass;

Console.WriteLine(new Action(() =>
                          Array.ForEach(
                              (args = new[] { "12345", new Random().Next(1, 101).ToString(), null!, null! })[0]
                              .ToCharArray(),
                              arg => new Action<int?>(x =>
                                      Console.WriteLine(args[3] =
                                          $"{((args[2] = Console.ReadLine()) == x.ToString() ? "恭喜，答对了！" : int.Parse
                                              ($"0{System.Text.RegularExpressions.Regex.Match(args[2], @"\d+").Value}") < x ?
                                              "太小了" :
                                              "太大了")}"))
                                  .Invoke(new Action<string>(Console.Write).DynamicInvoke(args[3]?.Length > 3
                                      ? new Action(() => Environment.Exit(0)).DynamicInvoke()
                                      : $"猜1-100数字, [{arg}/{args[0].Length}]: ") as int? ?? int.Parse(args[1]))))
                      .DynamicInvoke() ??
                  $"很遗憾, 您已失败. 正确答案是 [{args[1]}]");

//for (int i = 0; i < 1000; i++)
//{
//    Console.WriteLine(IntToLetters(i));
//}

//static string IntToLetters(int value)
//{
//    value = value + 1;
//    string result = string.Empty;
//    while (--value >= 0)
//    {
//        result = (char)('A' + value % 26) + result;
//        value /= 26;
//    }
//    return result;
//}

//var faker = new Bogus.Faker("zh_CN");
//faker.Name.
//var ids = 0;
//var faker = new Bogus.Faker<人员>("zh_CN")
//    .StrictMode(true)
//    .RuleFor(x=>x.ID,f=> ids++)
//    .RuleFor(x=>x.姓名,f=>Name.);
//var data = faker.Generate(10);

//var name = faker.Name.LastName() + faker.Name.FirstName();
//Console.WriteLine(name);

//internal class 人员
//{
//    internal int ID { get; set; }
//    internal string 姓名 { get; set; }
//}

//Directory.GetDirectories(@"C:\Users\Administrator\source\repos").ToList().ForEach(Console.WriteLine);

//using System.Collections;
//using System.Collections.Generic;
//using System.Net;
//using System.Net.Http;
//using System.Reflection;
//using ConsoleApp1;
//using MiniExcelLibs.OpenXml;
//using Newtonsoft.Json;
//using Newtonsoft.Json.Linq;

//I放水里 第一个放水里 = new 鸡();
//Console.WriteLine("鸡放水里\t" + 第一个放水里.放水里());
//I放水里 第二个放水里 = new 鸭();
//Console.WriteLine("鸭放水里\t" + 第二个放水里.放水里());
//I放水里 小明 = new 人() { 会不会游泳 = false };
//Console.WriteLine("小明放水里\t" + 小明.放水里());
//I放水里 小红 = new 人() { 会不会游泳 = true };
//Console.WriteLine("小红放水里\t" + 小红.放水里());
//Console.Read();

//internal interface I放水里
//{
//    bool 会不会游泳 { get; set; }

//    string 放水里();
//}

//internal class 动物 : I放水里
//{
//    public bool 会不会游泳 { get; set; }

//    public string 放水里()
//    {
//        if (会不会游泳) return "游泳";
//        return "淹死了";
//    }
//}

//internal class 鸭 : 动物
//{
//    internal 鸭()
//    {
//        会不会游泳 = true;
//    }
//}

//internal class 鸡 : 动物
//{
//    internal 鸡()
//    {
//        会不会游泳 = false;
//    }
//}

//internal class 人 : I放水里
//{
//    public bool 会不会游泳 { get; set; }

//    public string 放水里()
//    {
//        if (会不会游泳) return "游泳";
//        return "喊救命";
//    }
//}

//HttpClient client = new();
//var str = await client.GetStringAsync("https://tenapi.cn/v2/getip");
//var d = JsonConvert.DeserializeObject<Dictionary<string, object>>(str);
//var data = (JObject)d["data"];
//foreach (var item in data)
//{
//    Console.WriteLine($"{item.Key}\t\t{item.Value}");
//}
//Console.Read();
//var n = 0.00m;
//internal class A
//{
//    private string _属性;

//    internal ref string 属性
//    {
//        get => ref _属性;
//        //set
//        //{
//        //    Console.WriteLine(value);
//        //    _属性 = value;
//        //}
//    }
//}

//internal class B
//{
//    internal B(ref string 参数)
//    {
//        参数 = "123";
//    }
//}

//var sw = new Stopwatch();
//sw.Start();
//var 数据源=new char[] {'A','A','A','A','B','B','C','C','C' };
//var 结果 = PermutationAndCombination<char>.GetCombination(数据源, 6);
//结果.ForEach((x,i) =>Console.WriteLine(new string(x)+'\t'+i.ToString()));
//Console.WriteLine(sw.Elapsed);
//Console.Read();